package models

import "gorm.io/gorm"

// ChatHistory 对应数据库表 chat_history
/*
  `groud_id` int DEFAULT '0' COMMENT '消息聊天组id',
  `user_id` int DEFAULT '0' COMMENT '发送消息用户id',
  `user_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'admin' COMMENT '用户类型  member 用户, admin 管理员',
  `content` text COLLATE utf8mb4_general_ci COMMENT '消息内容',
  `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'text' COMMENT '消息类型 text 文本消息,  image 图片消息, video 视频消息, audio 音频消息'
  `status` tinyint(1) DEFAULT '0' COMMENT '消息状态 0未读 1已读'
*/
type ChatHistory struct {
	gorm.Model
	GroupID   uint   `gorm:"default:0;comment:消息聊天组id"`
	UserID    uint   `gorm:"default:0;comment:发送消息用户id"`
	UserType  string `gorm:"default:'admin';comment:类型  member 用户, admin 管理员"`
	Content   string `gorm:"comment:消息内容"`
	Type      string `gorm:"default:'text';comment:消息类型 text 文本消息,  image 图片消息, video 视频消息, audio 音频消息"`
	Status    uint8  `gorm:"default:0;comment:消息状态 0未读 1已读"`
	CreatedAt int64  `gorm:"autoCreateTime;comment:创建时间戳"` // 修改为 int64 类型
	UpdatedAt int64  `gorm:"autoUpdateTime;comment:更新时间戳"` // 修改为 int64 类型
}
type ChatHistoryCreate struct {
	GroupID  uint   `json:"group_id"`
	UserID   uint   `json:"user_id"`
	UserType string `json:"user_type"`
	Content  string `json:"content"`
	Type     string `json:"type"`
	Status   uint8  `json:"status"`
}

type ChatHistoryUpdate struct {
	ID       uint   `json:"id"`
	GroupID  uint   `json:"group_id"`
	UserID   uint   `json:"user_id"`
	UserType string `json:"user_type"`
	Content  string `json:"content"`
	Type     string `json:"type"`
	Status   uint8  `json:"status"`
}

type ChatHistoryList struct {
	ID           uint   `json:"id"`
	GroupID      uint   `json:"group_id"`
	UserID       uint   `json:"user_id"`
	NickName     string `json:"nick_name"`
	HeadImg      string `json:"head_img"`
	UserType     string `json:"user_type"`
	Content      string `json:"content"`
	Type         string `json:"type"`
	Status       uint8  `json:"status"`
	CreatedAt    int64  `json:"created_at"`
	CreatedAtStr string `json:"created_at_str"`
}

// TableName 设置表名为 chat_history
func (ChatHistory) TableName() string {
	return "chat_history"
}
